package mysql.v1;

import java.sql.*;

/**
 * JDBC可以完成CRUD操作【增加、修改、删除】
 *   使用 JDBC 规范 查询操作
 *   1.加载驱动：注册Mysql驱动
 *   2.准备SQL：连接成功Mysql 服务器
 *   3.发送SQL：执行查询操作
 *   4.查询结果集：Resultset
 *   5.出路结果集：显示查询数据
 *   6.关闭资源
 */
public class MysqlJDBCv1  {

    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        //1.注册Mysql驱动---java---Driver接口
      Class.forName("com.mysql.jdbc.Driver");
        //2.准备SQL，同时准备发送SQL工具类
        String username="root";
      String password="13092500";
      String url="jdbc:mysql://127.0.0.1:3307/mi?characterEncoding=UTF-8";
      //链接成功mysql sql工具类---java--DriverManager接口
        //DriverManager接口-->getConnection方法：传入：传入3个参数
        //顺利打印对象：代表JDBC链接Mysql成功
        Connection con=DriverManager.getConnection(url,username,password);
        //打桩：测试是否连接成功
        System.out.println("测试java链接数据库对象："+con);


        //3.发送SQL：查询mi库--》book表数据
        String sql="select * from book";
        //通过链接成功Connection对象.createStatement()
        //createStatement() 链接数据库，返回Statement 对象
        //Statement 对象--java--链接数据库并且返回Statement对象
        // Statement对象：执行静态SQL--具备CRUS 功能：查增改删

        Statement st=con.createStatement();
        //4.executeUpdate(sql) 增删改 操作 使用方法   返回int类型
        //                                        成功几条SQL
        //  executeQuery(sql)bb查询   操作  使用方法  返回ResultSet接口
        //                                         查询结果集
        ResultSet rs=st.executeQuery(sql);
        // ResultSet 对象--java--查询到的数据保存对象
        //5.处理结果集：显示book 表所有记录数【数据库】
        System.out.println("-------------查询book表结果如下---------");
        //显示数据--book表那些字段，类型必须知道
        //   取【显示】7个字段，类型 Mysql int[整型]  varchar[字符串]
        //   取【显示】7个字段，类型 java int[整型]   String[字符串]
        //ResultSet 对象提供方法  next()  依次取出每个字段记录【数据】
        //前提：不知道多少字段：依次数据--while循环
        while(rs.next()){ //取出每个【7个】字段记录【数据】
            //getInt类型（“字段名”） 取字段名下类型
            int id=rs.getInt("id");
            //getString("字段名")  取字段名下类型
            String author=rs.getString("author");
            String name=rs.getString("name");
            int price=rs.getInt("price");
            String date=rs.getString("date");
            int number=rs.getInt("number");
            String discount=rs.getString("discount");
            //打桩：打印坐着记录
            System.out.println("作者"+author);
        }
    }


}
